package com.muyu.payment.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.payment.domain.PaymentTransaction;

/**
 * 交易记录服务接口
 */
public interface PaymentTransactionService {
    
    /**
     * 创建交易记录
     *
     * @param transaction 交易记录信息
     * @return 交易记录ID
     */
    Long createTransaction(PaymentTransaction transaction);
    
    /**
     * 根据交易编号查询交易记录
     *
     * @param transactionNo 交易编号
     * @return 交易记录
     */
    PaymentTransaction getByTransactionNo(String transactionNo);
    
    /**
     * 更新交易状态
     *
     * @param transactionNo 交易编号
     * @param status 状态
     * @param channelResponse 渠道返回结果
     * @return 是否成功
     */
    boolean updateTransactionStatus(String transactionNo, Integer status, String channelResponse);
    
    /**
     * 处理交易成功通知
     *
     * @param transactionNo 交易编号
     * @param channelTradeNo 渠道交易号
     * @param channelResponse 渠道返回结果
     * @return 是否处理成功
     */
    boolean handleTransactionSuccess(String transactionNo, String channelTradeNo, String channelResponse);
}
